'use strict';

module.exports = ({ mongoose }) => {
  const { Schema, ObjectId } = mongoose;
  const fieldSchema = new Schema(
    {
      name: { type: String, required: true }, // 字段名称（姓名、手机号、身份证、图片等等）
      type: { type: String }, // 字段类型
      value: { type: Schema.Types.Mixed }, // 字段值 对于图片是  { type: [ObjectId], ref: 'file' } 类型
    },
    {
      _id: false,
    }
  );
  const participationLogSchema = new Schema(
    {
      activity: { type: ObjectId, ref: 'activity', index: true }, // 参与的活动
      user: { type: ObjectId, ref: 'user', index: true }, // 参与人
      participation: { type: ObjectId, ref: 'participation' }, // 参与关系
      type: { type: String }, // 活动类型
      dateCreated: { type: String }, // 打卡日期
      timeCreated: { type: String }, // 打卡时间
      fields: { type: [ fieldSchema ], default: undefined }, // 打卡字段
      status: { type: Number, default: 0 }, // 审核状态：0 待审核 -1 审核失败(违规) 1 审核成功
    },
    {
      timestamps: true,
    }
  );
  return mongoose.model('participationLog', participationLogSchema, 'participation_logs');
};
